package com.robertux.leaderboard.beans.entities;

import java.io.Serializable;

import javax.persistence.*;


/**
 * The persistent class for the DETALLE_GRUPO_PRODUCTO database table.
 * 
 */
@Entity
@Table(name="DETALLE_GRUPO_PRODUCTO")
@NamedQuery(name="DetalleGrupoProducto.findAll", query="SELECT d FROM DetalleGrupoProducto d")
public class DetalleGrupoProducto implements Serializable, Comparable<DetalleGrupoProducto> {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int id;

	@Column(name="PRODUCTO_ID")
	private String productoId;
	
	private int cantidad;

	//bi-directional many-to-one association to GrupoProducto
	@ManyToOne()
	@JoinColumn(name="GRUPO_PRODUCTO_ID")
	private GrupoProducto grupoProducto;

	public DetalleGrupoProducto() {
		this.grupoProducto = new GrupoProducto();
	}

	public DetalleGrupoProducto(String productoId, int cantidad) {
		this();
		this.productoId = productoId;
		this.cantidad = cantidad;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + id;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		DetalleGrupoProducto other = (DetalleGrupoProducto) obj;
		if (!productoId.equals(other.productoId))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "DetalleGrupoProducto [id=" + id + ", productoId=" + productoId
				+ ", cantidad=" + cantidad
				+ "]";
	}

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getProductoId() {
		return this.productoId;
	}

	public void setProductoId(String productoId) {
		this.productoId = productoId;
	}
	
	public int getCantidad() {
		return this.cantidad;
	}
	
	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}

	public GrupoProducto getGrupoProducto() {
		return this.grupoProducto;
	}

	public void setGrupoProducto(GrupoProducto grupoProducto) {
		this.grupoProducto = grupoProducto;
	}

	@Override
	public int compareTo(DetalleGrupoProducto o) {
		return this.productoId.compareTo(o.getProductoId());
	}

}